funit nasıl kullanılır ne demek?

FUnit, Fortran programlama dilinde kullanılan bir birim test çerçevesidir. Temel amacı, yazılan Fortran kodunun doğru ve beklendiği gibi çalıştığını doğrulamak için otomatik testler oluşturmak ve çalıştırmaktır. İşte FUnit'in nasıl kullanılacağına dair temel bilgiler:

1. Kurulum ve Yapılandırma:

FUnit, genellikle sisteminize ayrıca kurulması gereken bir kütüphanedir. Kurulum adımları, kullandığınız işletim sistemi ve Fortran derleyicisine göre değişiklik gösterebilir. Kurulum tamamlandıktan sonra, derleme ve bağlama aşamalarında FUnit kütüphanelerini projenize dahil etmeniz gerekir.

2. Test Dosyası Oluşturma:

FUnit testleri genellikle ayrı bir Fortran dosyasında (*.f90 veya *.f) tutulur. Bu dosya, test edilecek alt programları (subroutines veya functions) kullanır ve sonuçlarını doğrular.

3. Test Yazma:

FUnit testleri, TEST bloğu içerisinde tanımlanır. Her bir test, belirli bir senaryoyu veya işlevselliği test eder. FUnit, sonuçları doğrulamak için çeşitli assertion (iddia) türleri sunar. Başlıca assertion türleri şunlardır:

  • ASSERT_EQUAL: İki değerin eşit olup olmadığını kontrol eder.
  • ASSERT_NEAR: İki reel sayının belirli bir tolerans dahilinde eşit olup olmadığını kontrol eder.
  • ASSERT_TRUE: Bir mantıksal ifadenin doğru olup olmadığını kontrol eder.
  • ASSERT_FALSE: Bir mantıksal ifadenin yanlış olup olmadığını kontrol eder.
  • ASSERT_EXCEPTION: Beklenen bir istisna (exception) oluşup oluşmadığını kontrol eder.

Örnek:

MODULE my_module
  CONTAINS
    FUNCTION add(a, b) RESULT(sum)
      INTEGER, INTENT(IN) :: a, b
      INTEGER :: sum
      sum = a + b
    END FUNCTION add
END MODULE my_module

PROGRAM my_module_test
  USE FUnit
  USE my_module

  TYPE(TestFixture) :: fixture

  CONTAINS

    SUBROUTINE test_add
      INTEGER :: result
      result = add(2, 3)
      ASSERT_EQUAL(5, result) ! Beklenen sonuç 5
    END SUBROUTINE test_add

  END

  CALL RegisterFixture(fixture)
END PROGRAM my_module_test

4. Testleri Derleme ve Çalıştırma:

Test dosyasını ve test edilecek modülü FUnit kütüphaneleriyle birlikte derleyin. Ardından, oluşan çalıştırılabilir dosyayı çalıştırın. FUnit, test sonuçlarını konsolda veya belirtilen bir dosyada raporlayacaktır. Testlerin başarılı veya başarısız olduğuna dair bilgi sağlanır.

5. Raporlama:

FUnit, test sonuçlarını farklı formatlarda (örneğin, metin, XML) raporlayabilir. Bu raporlar, sürekli entegrasyon (Continuous Integration - CI) sistemlerinde otomatik test süreçlerinin bir parçası olarak kullanılabilir. CI sistemi, kodda yapılan değişikliklerin ardından otomatik olarak testleri çalıştırır ve geliştiricilere geri bildirim sağlar. Bu sayede, hatalar erken aşamada tespit edilebilir ve düzeltilebilir.

Ek Bilgiler:

  • FUnit, test suite (test kümeleri) ve fixture (test ortamı) gibi kavramları destekler. Test kümeleri, ilgili testleri gruplandırmaya yarar. Test ortamları ise, her testin başlamadan önce ve sonra belirli bir durumda olmasını sağlar (örneğin, bir dosyayı oluşturmak veya silmek).
  • FUnit dokümantasyonu ve örnekleri, daha karmaşık test senaryoları ve FUnit'in gelişmiş özellikleri hakkında daha fazla bilgi sağlayacaktır.